The present disclosure relates to computer systems, and in particular to controlling deployment of resources within a distributed computing system.
Distributed computing systems, sometimes also referred to as cloud computing systems, are used to provide services to electronic devices which may be operated by end users. In a cloud computing system, the physical machine architecture is hidden from the end user. The physical machines can include servers, network storage devices, computing devices, network routers, network gateways, wireless/wired network interface devices, etc. However, because services are deployed on a physical machine architecture which is hidden from end users, it can be managed, upgraded, replaced or otherwise changed by a system administrator (operator) without the end users being aware of or affected by the change.
In existing cloud and other distributed computing systems, the creator of services or the operator of the cloud system must know in advance which applications (or types of applications) will be deployed and estimate the number and types of physical machines that need to be deployed in the cloud system to support processing of the applications. The capacity of the distributed computer system can be changed by increasing or decreasing the number or types of physical machines. During operation, a load balancer can operate to direct requests from user electronic devices to particular ones of the physical machines for processing by associated applications. Although load balancers can provide better balancing of system utilization, they may not sufficiently improve the efficiency at which physical machines are deployed and used, which may have a substantial effect on cost in view of the potential large number of physical machines and applications that can be deployed in some distributed computer systems.